Fix Garmin debugging for "funny" characters. Isalnum() prints single byte characters...
authorRobert Lipe <robertlipe@gpsbabel.org>
Thu, 1 Aug 2019 00:06:16 +0000 (19:06 -0500)
committerRobert Lipe <robertlipe@gpsbabel.org>
Thu, 1 Aug 2019 00:06:16 +0000 (19:06 -0500)
jeeps/gpsapp.cc
jeeps/gpsread.cc
jeeps/gpssend.cc
jeeps/gpsusbcommon.cc

index 9baebaddb25487ba26fa17403d68983ee3c2d127..a313293616837026f9c19c027031c9ccae0fe6f8 100644 (file)
@@ -30,6 +30,8 @@
 #include <cstring>
 #include <ctime>
 
+#include <QtCore/QDateTime>
+
 /*
  * This violates the layering design, but is needed for device discovery.
  * See the use of gps_is_usb and GPS_Packet_Read_usb below.
@@ -842,6 +844,8 @@ static void GPS_A001(GPS_PPacket& packet)
            gps_route_transfer, gps_rte_hdr_type, gps_rte_type);
   GPS_User("Track:    Transfer %d Type %d\n",
            gps_trk_transfer, gps_trk_type);
+  QDateTime dt = QDateTime::fromMSecsSinceEpoch(gps_save_time * 1000);
+  GPS_User("GPS Time: %s\n", CSTR(dt.toString()));
 
   return;
 }
index fe06f20a4313a933ec280b404738ad88b48cdd0b..3f97922e59a1e3fa867798a67d5a947668f44345 100644 (file)
@@ -150,7 +150,7 @@ int32 GPS_Serial_Packet_Read(gpsdevh* fd, GPS_PPacket* packet)
             GPS_Diag(" ");
             for (unsigned i = 0; i < packet->n; i++) {
               char c = (*packet).data[i];
-              GPS_Diag("%c", isalnum(c) ? c : '.');
+              GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.');
             }
             GPS_Diag(" ");
           }
index fc0a8c878e471fa9769f7ead7525d693c20ef1cd..ba17f8acc9451531bbad33c1d2f0228aea3bf164 100644 (file)
@@ -102,7 +102,7 @@ DiagS(void* buf, size_t sz)
 
   while (sz--) {
     unsigned char c = *cbuf++;
-    GPS_Diag("%c", isalnum(c) ? c : '.');
+    GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.');
   }
 }
 
index 225f747d6a2a440ac8fffd0931aa9d9e7d9b59c0..4d5163f460b358c1dab2612ee66ff7365f9723ef 100644 (file)
@@ -118,7 +118,8 @@ top:
         GPS_Diag("[...]");
         break;
       }
-      GPS_Diag("%c", isalnum(buf[i])? buf[i] : '.');
+      int c = buf[i];
+      GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.');
     }
 
     m1 = Get_Pkt_Type(pkt_id, pkttype, &m2);
@@ -169,7 +170,8 @@ gusb_cmd_send(const garmin_usb_packet* opkt, size_t sz)
     }
 
     for (i=0; i<sz; i++) {
-      GPS_Diag("%c", isalnum(obuf[i])? obuf[i] : '.');
+      int c = obuf[i];
+      GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.');
     }
 
     m1 = Get_Pkt_Type(pkt_id, pkttype, &m2);